home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc / OpenDoc Development / Debugging Support / OpenDoc™ Source Code / UI / StdDispM.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-28  |  5.8 KB  |  159 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        StdDispM.h
  3.  
  4.     Contains:    Helper object for standard dispatch module for Macintosh
  5.  
  6.     Owned by:    Richard Rodseth
  7.  
  8.     Copyright:    © 1993 - 1995 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.         <10>     9/21/95    RR        #1286167 Suppress mouse up after bg
  13.                                     mousedown. Renamed fInvalidClick to
  14.                                     fSuppressMouseUp
  15.          <9>     8/29/95    RR        #1276401 Added tokenized mousr focus
  16.          <8>     6/15/95    RR        #1254828/1255536 Adding Redispatching
  17.          <7>     5/10/95    RR        # 1242893, 1245692 Added fields to support
  18.                                     Mouse up dispatching
  19.          <6>      5/2/95    RR        # 1226050 Added fLastBorderFrame.
  20.          <5>     1/13/95    RR        Added eventInfo to event handling methods
  21.          <4>    10/27/94    RR        Added tokenized focus fields
  22.          <3>     9/30/94    RR        #1171182 Treat icons as bundled. Added
  23.                                     fViewAsFrameToken
  24.          <2>      9/6/94    RR        Added utility methods for event propagation
  25.          <1>     6/24/94    RR        first checked in
  26.         <14>     3/15/94    MB        Changes to support SCpp/ASLM builds,
  27.                                     #1150864.
  28.         <13>     2/16/94    JA        Stop including Point.h.
  29.         <12>      2/9/94    NP        Tiger Team cleanup.
  30.         <11>     1/21/94    RR        Restored Dispatch() signature
  31.         <10>     1/18/94    RR        Add fScrollingFocus. Added DispatchTheEvent
  32.                                     to propagate to container where appropriate
  33.          <9>     1/15/94    RR        WinState.h->WinStat.h,
  34.                                     Dispatch.h->Disptch.h
  35.          <8>     1/11/94    TÇ        Init... changes
  36.          <7>    12/20/93    RR        New init strategy
  37.          <6>    12/16/93    RR        DispatchToFacetUnderPoint became a member
  38.                                     function
  39.          <5>     12/2/93    RR        Use new eventType definition
  40.          <4>    11/19/93    RR        Added DispatchWindowEvent
  41.          <3>     8/13/93    CG        Added ASLM stuff.
  42.          <2>     8/11/93    RR        Added fields to cache handy references to
  43.                                     session globals
  44.          <1>     8/10/93    RCR        first checked in
  45.  
  46.     To Do:
  47. */
  48.  
  49. #ifndef _STDDISPM_
  50. #define _STDDISPM_
  51.  
  52. #ifndef _ODTYPES_
  53. #include "ODTypes.h"
  54. #endif
  55.  
  56. #ifndef _PLFMDEF_
  57. #include "PlfmDef.h"
  58. #endif
  59.  
  60. //=====================================================================================
  61. // Classes defined in this interface
  62. //=====================================================================================
  63.  
  64. class MacDispatchModule;
  65.  
  66. //=====================================================================================
  67. // Classes used by this interface
  68. //=====================================================================================
  69.  
  70. class ODWindow;
  71. class ODWindowState;
  72. class ODArbitrator;
  73. class ODDispatcher;
  74. class ODSession;
  75. class ODFrame;
  76. class ODFacet;
  77.  
  78. //=====================================================================================
  79. // Global Variables
  80. //=====================================================================================
  81.  
  82. //=====================================================================================
  83. // MacDispatchModule
  84. //=====================================================================================
  85.  
  86. class MacDispatchModule 
  87. {
  88. public:
  89.  
  90.     MacDispatchModule();
  91.             
  92.     ~MacDispatchModule();
  93.     
  94.     ODNVMethod void InitMacDispatchModule(Environment* ev, ODSession* session);
  95.  
  96.     ODNVMethod ODBoolean Dispatch(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  97.  
  98. protected:
  99.  
  100.     ODNVMethod void DispatchOSEvent(Environment* ev, ODEventData* event);
  101.     ODNVMethod void MouseMoved(Environment* ev, ODEventData* theEvent);
  102.     ODNVMethod void SuspendResume(Environment* ev, ODEventData* theEvent);
  103.     
  104.     ODNVMethod ODBoolean DispatchMouseDownEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  105.     ODNVMethod ODBoolean DispatchMouseUpEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  106.     ODNVMethod ODBoolean DispatchMenuEvent (Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo);
  107.     ODNVMethod ODBoolean DispatchMouseDownInContent (Environment* ev, ODWindow* theWindow,
  108.                                                 ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  109.     ODNVMethod ODBoolean DispatchMouseDownInBorder(Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  110.     ODNVMethod ODBoolean DispatchMouseDownEmbedded(Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  111.     ODNVMethod ODBoolean DispatchMouseUpEmbedded(Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  112.     ODNVMethod ODBoolean DispatchKeyDownEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  113.     ODNVMethod ODBoolean DispatchKeyUpEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  114.     
  115.     ODNVMethod ODBoolean DispatchUpdateEvent(Environment* ev, ODEventData* event);
  116.     ODNVMethod ODBoolean DispatchActivateEvent(Environment* ev, ODEventData* event);
  117.  
  118.     ODNVMethod ODBoolean DispatchWindowEvent(Environment* ev, ODWindow* window, 
  119.                                 short partCode, ODEventData* theEvent, ODEventInfo* eventInfo);
  120.  
  121.     ODNVMethod ODBoolean DispatchToFacetUnderPoint(Environment* ev, ODWindow* window, ODPoint& windowPt, 
  122.                                                     ODEventData* theEvent, ODEventInfo* eventInfo);
  123.  
  124.     ODNVMethod ODBoolean DispatchTheEvent(Environment* ev, 
  125.                             ODEventData* theEvent, 
  126.                             ODFrame* targetFrame,
  127.                             ODFacet* targetFacet,
  128.                             ODEventInfo* eventInfo);
  129.                             
  130.     ODNVMethod ODBoolean PropagateTheEvent(Environment* ev, 
  131.                             ODEventData* theEvent, 
  132.                             ODFrame* initialFrame,
  133.                             ODFacet* initialFacet,
  134.                             ODEventInfo* eventInfo);
  135.         
  136. protected:
  137.  
  138.     // Caches for frequently accessed items
  139.     ODSession*         fSession;
  140.     ODArbitrator*     fArbitrator;
  141.     ODWindowState* fWindowState;
  142.     ODDispatcher*     fDispatcher;
  143.  
  144.     ODTypeToken fKeyFocusToken;
  145.     ODTypeToken fMenuFocusToken;
  146.     ODTypeToken fSelectionFocusToken;
  147.     ODTypeToken fModalFocusToken;
  148.     ODTypeToken fMouseFocusToken;
  149.     ODTypeToken fScrollingFocusToken;
  150.     ODTypeToken fLargeIconViewToken;
  151.     ODTypeToken fSmallIconViewToken;
  152.     ODTypeToken fThumbnailViewToken;
  153.     
  154.     ODFacet* fMouseDownFacet; // The facet to which the last mouse down in border was sent. Used for the mouse up
  155.     ODFacet* fEmbeddedFacet;  // The embedded facet fpr a kODEvtMouseDownEmbedded. Used for the mouse up
  156.     ODBoolean fSuppressMouseUp;    // Mouse down outside active border; Background mouse down
  157. };
  158. #endif // _STDDISPM_
  159.